-
Notifications
You must be signed in to change notification settings - Fork 725
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tools/pd-ut: accelerate build by compile-without-link
#8069
Conversation
Signed-off-by: husharp <jinhao.hu@pingcap.com>
[REVIEW NOTIFICATION] This pull request has been approved by:
To complete the pull request process, please ask the reviewers in the list to review by filling The full list of commands accepted by this bot can be found here. Reviewer can indicate their review by submitting an approval review. |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #8069 +/- ##
==========================================
- Coverage 77.33% 77.27% -0.06%
==========================================
Files 469 469
Lines 61097 61097
==========================================
- Hits 47247 47213 -34
- Misses 10289 10316 +27
- Partials 3561 3568 +7
Flags with carried forward coverage won't be shown. Click here to find out more. |
/merge |
@nolouch: It seems you want to merge this PR, I will help you trigger all the tests: /run-all-tests You only need to trigger
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
This pull request has been accepted and is ready to merge. Commit hash: 09120fb
|
@HuSharp: Your PR was out of date, I have automatically updated it for you. If the CI test fails, you just re-trigger the test that failed and the bot will merge the PR for you after the CI passes. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
compile-without-link
compile-without-link
What problem does this PR solve?
Issue Number: Ref #7969
What is changed and how does it work?
Behind the scene, it's a technique called 'staged build'.
If we build all the test binaries parallelly, the go compiler will detect that much of the pacakge cache are not available, so it would build package cache several times. For example, building
pkg/server/api
andpkg/server/apiv2
parallelly, they all depends on a lot of other small packages, since those packages do not exist at the time. The package is built repeatedly because of the parallel.If we build all the packages first to make the cache available, and then built the test binaries, we can avoid repeated package building. This make the whole process a little bit faster.
And rely on this article, we can build without link. https://blog.howardjohn.info/posts/go-build-times/#linking-vs-compiling
run below command
before vs after
Check List
Tests
Release note